<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>



//【示例1】借助delete运算符能删除数组元素，因为Array也是对象，数组元素实际上与对象属性是一样的。
var a = [1, 2, true, "a", "b"];	// 定义数组
delete a[0]; 						// 删除指定下标的元素

alert(a.length); 					// 返回5
alert(a); 							// 返回2,true ,a, b

//【示例2】下面代码比较push()和pop()方法的使用。

var a = [];						// 定义数组，模拟空栈
a.push(1); 						// 进栈，栈值为[1]，此时该方法返回值为1
a.pop();						// 出栈，栈值为空，此时该方法返回值为1
a.push(2); 						// 进栈，栈值为[2]，此时该方法返回值为1
a.pop();						// 出栈，栈值为空，此时该方法返回值为2
a.push(3,4); 					// 进栈，栈值为[3,4]，此时该方法返回值为2
a.pop();						// 出栈，栈值为[3]，此时该方法返回值为4
a.pop();						// 出栈，栈值为空，此时该方法返回值为3
//【示例3】下面代码比较unshift()和shift()方法的使用。

var a = [0]; 						// 定义数组
a.unshift(1,2); 					// 同时增加两个元素
alert(a); 							// 返回[1,2,0]

a.unshift(1); 						// 增加元素1
a.unshift(2); 						// 增加元素2
alert(a); 							// 返回[2,1,0]

//【示例4】下面代码匹配使用pop()和unshift()方法设计堆栈操作。

var a = [1,2,3,4,5]; 				// 定义数组
for(var i in a){ 					// 遍历数组
    var t = a.pop();				// 先出，把出去的元素值暂时保存
    a.unshift(t*10); 				// 先进，把出去的元素值放大10倍，再进入
}
alert(a); 							// 返回[10,20,30,40,50]
//【示例5】下面使用concat()合并数组。

var a = [1,2,3,4,5]; 					// 定义数组
var b = a.concat(6,7,8); 				// 为数组a连接3个元素
alert(b); 								// 返回[1,2,3,4,5,6,7,8]

var b = a.concat([1,2,3],[4,5]); 		// 连接数组
alert(b.length); 						// 返回10，说明参数数组被打散了

var b = a.concat([[1,2],3],[4,5]); 	// 连接数组
alert(b.length); 						// 返回9，说明数组[1,2]没有被打散


</script>
</head>
<body>




</body>
</html>
